/* 
 * File:   enemy.h
 * Author: brunoslr
 *
 * Created on 16 de Setembro de 2009, 00:06
 */
#include "constants.h"
#include "Shoot.h"
#ifndef _ENEMY_H
#define	_ENEMY_H

const int EnemyShoots = 3;

class Enemy {
public:

    double positionx;

    double positiony;
    
    double specialMovex;
    
    double specialMovey;

    double spDestinationx;

    double spDestinationy;

    double radius;

    GLint value;

    bool explosion;

    int expFrame;

    Shoot *tiro[EnemyShoots];

    bool status;

    bool specialMove;

    bool returnToPosition;

    int     move(double velocidade);
    int     SpecialMove(double velocidade, double velocidadey, double coordx);
    int     ReturnToPosition(double velocidade);

    int     moveShoots(void);
    double  getPositionx(void);
    double  getPositiony(void);
    bool    getStatus(void);
    int     drawEnemy(GLuint tex_enemy, const double *color);
    void    drawEnemyShoots();
    void    deleteShoots();
    int     TryToShoot(void);
    int     HasShoots();
    int     TrySpecialMove(double targetx);

    int     CollisionTestShoots(double x, double y);
    int     destroyed();

    Enemy(GLint tex_enemy);
    Enemy(double x, double y);
    Enemy(double x, double y, int points);
    Enemy(const Enemy& orig);
    virtual ~Enemy();
private:

};

#endif	/* _ENEMY_H */

